(function () {

    "use strict";

    $(document).ready(function() {
        var jf;
        var format = function() {
            var options = {
                dom: '.Canvas',
                isCollapsible: $('.CollapsibleView').prop('checked'),
                quoteKeys: $('.QuoteKeys').prop('checked'),
                tabSize: $('input[name=tab]:checked').val()
            };

            jf = new JsonFormater(options);
            jf.doFormat($('.json').val());
        };

        $(".btn-clean").on('click',
        function() {
            $('.json').val('');
        });
        $(".btn-format").on('click',
        function() {
            format();
        });
        $('.expandAll').click(function() {
            jf.expandAll();
        });
        $('.collapseAll').click(function() {
            jf.collapseAll();
        });
        $('.tab, .CollapsibleView, .QuoteKeys').change(function() {
            format();
        });
        $('.expand').click(function() {
            format();
            var level = $(this).data('level');
            jf.collapseLevel(level);
        });
        $("#button-popout").click(function () {
            if (typeof chrome.extension !== "undefined") {
                chrome.tabs.create({
                    url: 'popup.html'
                });
            }
        });

    });
})();